// 题目的需求
// 1. 指定参数名称，返回该参数的值 或者 空字符串
// 2. 不指定参数名称，返回全部的参数对象 或者 {}
// 3. 如果存在多个同名参数，则返回数组
// 4. 不支持URLSearchParams方法
// 示例1
// 输入
// http://www.nowcoder.com?key=1&key=2&key=3&test=4#hehe
// 输出
// {'key':[1, 2, 3] ,'test':4}

function getKeyValue(url,key) {
  let urlData = url.split('?')
  let result={}
  // 携带参数
  if (urlData.length>1) {
    let data = urlData[1].split('&')
    data.forEach((item,index) => {
      if (item.includes('#')) {
        data[index]=item.split('#')[0]
      }
      let keyValue = data[index].split('=')
      if (result[keyValue[0]]) { 
        // 某些无参数的情况下
          result[keyValue[0]].push(keyValue[1])
      } else {
        result[keyValue[0]] = [keyValue[1]]
      }
    });
  }
  return result[key] || result
}

let aaa = getKeyValue('http://www.nowcoder.com?key=1&key=2&key=&test=#hehe')
console.log(aaa)